USBASP V2.0 – warning: cannot set sck period

Cheap USBASP programmer which you china buy on ebay, ali and others. Official project WebPage: http://www.fischl.de/usbasp/

usbasp-v2.0-board-pinout

  • JP1 – Supply Target – Choose between 5V and 3.3V.
  • JP2 – Self Program – jumper on for self program, normally free
  • JP3 – Slow SCK – Jumper on only if the target clock is lower than 1.5 MHz.
  • LED R – Programmer communicating with target device
  • LED G – Power on
  • IDC pinout:
    usbasp-v2.0-idc-pinout

I will write how to solve:

avrdude: warning: cannot set sck period. please check for usbasp firmware update

You have to flash a new firmware version: usbasp.2011-05-28. Precompiled bin to flash is in \bin\firmware\ directory.

I’ve got USBASP with Atmega8 so I will use usbasp.atmega8.2011-05-28.hex and Arduino UNO R3 as ISP to flash it.

  1. First open ArduinoISP example in Arduino IDE 1.6.8 and upload the sketch (CTRL+U). Disconnect Arduino.
  2. Connect arduino to usb asp directly (without any adapter only cables) as follows:
    ArduinoUSBASP
    105 (RESET)
    111 (MOSI)
    129 (MISO)
    137 (SCK)
    5V2 (VCC +5V)
    GND10 (GROUND)
  3. Set jumper on JP2 (you can solder goldpins).
  4. Set power jumper for 5V (JP1)
  5. Connect only Arduino to USB and check which port com it use. You must not connect usbasp to usb!
  6. Download AVRDUDE avrdude-6.3-mingw32.zip: http://download.savannah.gnu.org/releases/avrdude/
  7. Copy correct hex file to avrdude.exe file directory.
  8. Check the connection with command:
    avrdude -c avrisp -P COMX -b 19200 -p ATmega8 -v

    avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is “C:\WinAVR-20100110\bin\avrdude.conf”

    Using Port : COM4
    Using Programmer : avrisp
    Overriding Baud Rate : 19200
    AVR Part : ATmega8
    Chip Erase delay : 10000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
    flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
    lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel AVR ISP
    Hardware Version: 2
    Firmware Version: 1.18
    Topcard : Unknown
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9307 (probably m8)
    avrdude: safemode: hfuse reads as D9

    avrdude: safemode: hfuse reads as D9
    avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

    avrdude done. Thank you.

    replace COMX with correct com port for arduino.

  9. Set the fuses like on Readme file:

    # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
    # TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
    # TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

    with command:

    avrdude -c avrisp -P COM3 -b 19200 -p ATmega8 -v -e -u -U hfuse:w:0xC9:m -U lfuse:w:0xEF:m
  10. If it recognize the M8 you can flash it:
    avrdude -c avrisp -P COMx -b 19200 -p ATmega8 -v -U flash:w:usbasp.atmega8.2011-05-28.hex

    avrdude: Version 6.3, compiled on Feb 17 2016 at 09:25:53
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is “C:\WinAVR-20100110\bin\avrdude.conf”

    Using Port : COM4
    Using Programmer : avrisp
    Overriding Baud Rate : 19200
    AVR Part : ATmega8
    Chip Erase delay : 10000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
    flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
    lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
    calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel AVR ISP
    Hardware Version: 2
    Firmware Version: 1.18
    Topcard : Unknown
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.04s

    avrdude: Device signature = 0x1e9307 (probably m8)
    avrdude: safemode: hfuse reads as D9
    avrdude: NOTE: “flash” memory has been specified, an erase cycle will be performed
    To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file “usbasp.atmega8.2011-05-28.hex”
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: writing flash (4700 bytes):

    Writing | ################################################## | 100% 7.34s

    avrdude: 4700 bytes of flash written
    avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
    avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
    avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
    avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 3.89s

    avrdude: verifying …
    avrdude: 4700 bytes of flash verified

    avrdude: safemode: hfuse reads as D9
    avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

    avrdude done. Thank you.

  11. Done. Disconnect Arduino.

USBASP Drivers on Windows 8, 8.1 and Windows 10

Read this: http://tosiek.pl/manual-install-drivers-and-disable-drivers-signing-policy-on-windows-10-8-8-1/
You have to first disable check signed drivers on windows 8, 8.1 and 10!
(pull Shift and click to restart > Troubleshoot > Advanced options > Startup Settings > Restart button again > On the Startup Settings screen press 7 or F7 to disable driver signature enforcement.)
Download: usbasp-windriver.2011-05-28

Then install it manually in device manager.

6 Comments

  1. it works for me thank you

  2. Witam
    Po aktualizacji do tego oprogramowania mój USBasp przestał działać w Arduino mam teraz:
    avrdude: error: program enable: target doesn’t answer. 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    wybrany port szeregowy
    nie istnieje albo Twoja płytka nie jest podłączona

    A próbuje już różnych sterowników pod moim win10 libusb-win, libusbK i tych usbasp-windriver.2011-05-28 programator przestał działać jako programator :/

    • tosiek

      27.01.2017 at 21:00

      Zobacz w menedżerze urządzeń czy widać urządzenie. Nie wyłączyłeś pewnie wymuszania podpisów cyfrowych i możesz ich zainstalować.

      Nie da się tej płytki uwalić, wgraj softa jeszcze raz przez Arduino as ISP i zdejmij zworkę do programowania.

  3. godfader275

    11.06.2017 at 10:59

    Cześć! Przechodzę cały proces bez żadnych problemów, dalej pojawia się jednak ten komunikat. Może jakieś pomysły co dalej z tym robić?

    avrdude: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude: error: program enable: target doesn’t answer. 0
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    Błąd przy wgrywaniu bootloadera.

    Przechodzę cały proces bez żadnych problemów, dalej pojawia się jednak ten komunikat. Może jakieś pomysły co dalej z tym robić?

  4. I follow your step, but message:
    avrdude: stk500_recv(): programmer is not responding

    I use Nano 16Mhz instead of Uno, all boards are health.

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.